// pages/riskWarning/index.js
Page({
  data: {
    currentTime: '',
    riskCount: 0,
    highRiskCount: 0,
    resolvedCount: 0,
    riskList: [],
    trendData: [],
    chartLines: [1, 2, 3, 4, 5],
    recommendations: [],
    notifications: [],
    refreshCount: 0 // 添加刷新计数器
  },

  onLoad: function (options) {
    // 页面加载时初始化数据
    this.updateTime();
    this.loadRiskData();
    this.loadTrendData();
    this.loadRecommendations();
    this.loadNotifications();
  },

  onReady: function () {
    // 页面渲染完成后的操作
  },

  onShow: function () {
    // 页面显示时的操作
    // 每30秒刷新一次数据
    this.startAutoRefresh();
  },

  onHide: function () {
    // 页面隐藏时的操作
    this.stopAutoRefresh();
  },

  onUnload: function () {
    // 页面卸载时的操作
    this.stopAutoRefresh();
  },

  onPullDownRefresh: function () {
    // 用户下拉刷新时的操作
    this.refreshAllData();
    wx.stopPullDownRefresh();
  },

  onReachBottom: function () {
    // 用户上拉触底时的操作
  },

  onShareAppMessage: function () {
    // 用户点击右上角分享时的操作
  },

  // 更新时间显示
  updateTime: function() {
    const now = new Date();
    const timeString = now.getFullYear() + '-' + 
      (now.getMonth() + 1).toString().padStart(2, '0') + '-' + 
      now.getDate().toString().padStart(2, '0') + ' ' + 
      now.getHours().toString().padStart(2, '0') + ':' + 
      now.getMinutes().toString().padStart(2, '0');
    
    this.setData({
      currentTime: timeString
    });
  },

  // 开始自动刷新
  startAutoRefresh: function() {
    this.autoRefreshTimer = setInterval(() => {
      this.refreshAllData();
    }, 30000); // 每30秒刷新一次
  },

  // 停止自动刷新
  stopAutoRefresh: function() {
    if (this.autoRefreshTimer) {
      clearInterval(this.autoRefreshTimer);
      this.autoRefreshTimer = null;
    }
  },

  // 刷新所有数据
  refreshAllData: function() {
    this.updateTime();
    this.loadRiskData();
    this.loadTrendData();
    this.loadRecommendations();
    this.loadNotifications();
    
    // 增加刷新计数器
    this.setData({
      refreshCount: this.data.refreshCount + 1
    });
    
    wx.showToast({
      title: '数据已更新',
      icon: 'none'
    });
  },

  // 手动刷新数据
  refreshData: function() {
    this.refreshAllData();
  },

  // 加载风险数据
  loadRiskData: function() {
    // 根据刷新次数生成不同的数据
    const refreshCount = this.data.refreshCount;
    
    // 模拟风险数据，每次刷新会有变化
    const riskTemplates = [
      {
        id: 1,
        level: '高风险',
        levelClass: 'level-high',
        time: '2025-11-08 14:30',
        title: '未申报专项附加扣除',
        description: '您有符合条件的专项附加扣除项目未申报，可能导致多缴税款约2400元/年',
        status: '未处理',
        statusClass: 'status-unresolved',
        actionText: '立即处理'
      },
      {
        id: 2,
        level: '中风险',
        levelClass: 'level-medium',
        time: '2025-11-07 09:15',
        title: '发票信息不完整',
        description: '部分发票缺少必要信息，可能影响税前扣除',
        status: '处理中',
        statusClass: 'status-resolving',
        actionText: '查看详情'
      },
      {
        id: 3,
        level: '低风险',
        levelClass: 'level-low',
        time: '2025-11-06 16:45',
        title: '收入分类不准确',
        description: '部分收入未按正确税目申报，建议重新分类',
        status: '已解决',
        statusClass: 'status-resolved',
        actionText: '查看记录'
      },
      {
        id: 4,
        level: '高风险',
        levelClass: 'level-high',
        time: '2025-11-08 10:20',
        title: '大额支出凭证缺失',
        description: '检测到一笔大额支出缺少有效凭证，可能影响税前扣除',
        status: '未处理',
        statusClass: 'status-unresolved',
        actionText: '补充凭证'
      },
      {
        id: 5,
        level: '中风险',
        levelClass: 'level-medium',
        time: '2025-11-07 15:40',
        title: '跨境收入申报异常',
        description: '跨境收入申报信息与银行流水存在差异',
        status: '处理中',
        statusClass: 'status-resolving',
        actionText: '核实信息'
      }
    ];
    
    // 根据刷新次数选择不同的风险数据
    let riskList = [];
    if (refreshCount % 3 === 0) {
      riskList = [riskTemplates[0], riskTemplates[1], riskTemplates[2]];
    } else if (refreshCount % 3 === 1) {
      riskList = [riskTemplates[1], riskTemplates[3]];
    } else {
      riskList = [riskTemplates[0], riskTemplates[2], riskTemplates[3], riskTemplates[4]];
    }
    
    // 随机调整部分风险的状态
    if (refreshCount > 0) {
      riskList.forEach((item, index) => {
        if (index % (refreshCount + 1) === 0) {
          // 随机改变状态
          const statusOptions = [
            { status: '未处理', statusClass: 'status-unresolved' },
            { status: '处理中', statusClass: 'status-resolving' },
            { status: '已解决', statusClass: 'status-resolved' }
          ];
          const randomStatus = statusOptions[Math.floor(Math.random() * statusOptions.length)];
          item.status = randomStatus.status;
          item.statusClass = randomStatus.statusClass;
        }
      });
    }

    const riskCount = riskList.length;
    const highRiskCount = riskList.filter(item => item.level === '高风险').length;
    const resolvedCount = riskList.filter(item => item.status === '已解决').length;

    this.setData({
      riskList: riskList,
      riskCount: riskCount,
      highRiskCount: highRiskCount,
      resolvedCount: resolvedCount
    });
  },

  // 加载趋势数据
  loadTrendData: function() {
    // 根据刷新次数生成不同的趋势数据
    const refreshCount = this.data.refreshCount;
    
    // 模拟趋势数据 (近6个月)
    const baseData = [
      { month: '6月', value: 5, position: 10 },
      { month: '7月', value: 3, position: 26 },
      { month: '8月', value: 7, position: 42 },
      { month: '9月', value: 4, position: 58 },
      { month: '10月', value: 6, position: 74 },
      { month: '11月', value: 3, position: 90 }
    ];
    
    // 每次刷新时稍微调整数据
    const trendData = baseData.map((item, index) => {
      // 根据刷新次数调整数值
      const adjustment = Math.sin(refreshCount + index) * 2;
      const newValue = Math.max(0, Math.min(10, Math.round(item.value + adjustment)));
      return Object.assign({}, item, {
        value: newValue
      });
    });

    this.setData({
      trendData: trendData
    });
  },

  // 加载建议数据
  loadRecommendations: function() {
    // 根据刷新次数生成不同的建议数据
    const refreshCount = this.data.refreshCount;
    
    // 模拟建议数据
    const recommendationTemplates = [
      {
        id: 1,
        title: '专项附加扣除申报',
        description: '根据您的情况，建议申报以下专项附加扣除项目',
        steps: [
          '登录个人所得税APP或网站',
          '完善个人信息和家庭成员信息',
          '填报专项附加扣除信息',
          '选择扣缴义务人或年度自行申报'
        ]
      },
      {
        id: 2,
        title: '发票信息补全',
        description: '为确保发票信息完整有效，请按以下步骤操作',
        steps: [
          '收集缺失信息的发票',
          '联系开票方补充必要信息',
          '重新整理归档发票',
          '在申报时正确填写发票信息'
        ]
      },
      {
        id: 3,
        title: '收入分类优化',
        description: '合理分类收入有助于降低税负，请参考以下建议',
        steps: [
          '区分工资薪金与其他收入',
          '确认各项收入的税率适用情况',
          '合理安排收入确认时间',
          '保留完整的收入凭证'
        ]
      },
      {
        id: 4,
        title: '税务档案管理',
        description: '良好的税务档案管理有助于应对税务检查',
        steps: [
          '建立电子化档案管理系统',
          '分类保存各类税务凭证',
          '定期备份重要税务资料',
          '设置档案保管期限提醒'
        ]
      }
    ];
    
    // 根据刷新次数选择不同的建议
    let recommendations = [];
    if (refreshCount % 2 === 0) {
      recommendations = [recommendationTemplates[0], recommendationTemplates[1]];
    } else {
      recommendations = [recommendationTemplates[2], recommendationTemplates[3]];
    }

    this.setData({
      recommendations: recommendations
    });
  },

  // 加载通知数据
  loadNotifications: function() {
    // 根据刷新次数生成不同的通知数据
    const refreshCount = this.data.refreshCount;
    
    // 模拟通知数据
    const notificationTemplates = [
      {
        id: 1,
        title: '年度汇算清缴即将开始',
        description: '2025年度个人所得税汇算清缴将于2026年3月1日开始，请提前准备相关资料'
      },
      {
        id: 2,
        title: '专项附加扣除标准调整',
        description: '2025年起，部分专项附加扣除标准有所调整，请及时更新申报信息'
      },
      {
        id: 3,
        title: '新税收优惠政策发布',
        description: '国家税务总局发布了新的税收优惠政策，请关注符合条件的项目'
      },
      {
        id: 4,
        title: '税务系统维护通知',
        description: '个人所得税系统将于本周末进行维护升级，请合理安排申报时间'
      }
    ];
    
    // 根据刷新次数选择不同的通知
    let notifications = [];
    if (refreshCount % 3 === 0) {
      notifications = [notificationTemplates[0], notificationTemplates[1]];
    } else if (refreshCount % 3 === 1) {
      notifications = [notificationTemplates[1], notificationTemplates[2]];
    } else {
      notifications = [notificationTemplates[2], notificationTemplates[3]];
    }

    this.setData({
      notifications: notifications
    });
  },

  // 处理风险项
  handleRisk: function(e) {
    const id = e.currentTarget.dataset.id;
    wx.showToast({
      title: '正在处理风险项 ' + id,
      icon: 'none'
    });
    
    // 模拟处理过程
    setTimeout(() => {
      wx.showToast({
        title: '风险项处理完成',
        icon: 'success'
      });
      // 重新加载数据以反映处理结果
      this.loadRiskData();
    }, 1000);
  }
});